perm filename SUDS.RPH[DSK,BGB] blob
sn#144444 filedate 1975-02-09 generic text, type T, neo UTF8
Introduction:
This document describes the STANFORD UNIVERSITY DESIGN
SYSTEM, originally developed at the Stanford University Artificial
Intelligence Lab by Dick Helliwell. It has been exported to several
sites, as described below:
Stanford Artificial Intelligence Lab
M.I.T. Artificial Intelligence Lab
Carnegie-Mellon University
Digital Equipment Corporation
WRITEUP FOR THE STANFORD DRAWING SYSTEM.
THE CHARACTERS "α", "β", "ε", AND "λ" STAND FOR <ctrl>, <meta>,
<ctrl><meta>, AND <don't care> RESPECTIVELY (NOT AT DEC). AT DEC THEY
STAND FOR 1, 2, AND 3 <ALT>'S REPECTIVELY. "α", "β", AND "ε"
ARE ALWAYS INTERPRETED BY THE SCANNER AS THESE THINGS! FOR DEC, THE
TERM "ALTMODE" WILL BE USED TO MEAN 4 <ALT>'S.
<EXISTS> WILL BE USED IN THIS WRITEUP TO MEAN THE EXISTS CHARACTER.
AT DEC IT IS ↑E, ELSEWHERE IT IS ∃.
THE LETTER "D" PRECEDING ANY DESCRIPTION MEANS THIS IS FOR THE LOGIC
DRAWING PROGRAM ONLY, "PC" MEANS PC CARD PROGRAM ONLY.
"L" MEANS THIS IS A FEATURE OF THE LAYOUT VERSION ONLY.
"R" MEANS THIS IS A FEATURE OF THE ROUTING VERSION ONLY.
"DEC" MEANS AT DEC.
"NODEC" MEANS ELSEWHERE.
"STANFO" MEANS STANFORD ONLY.
"NOSTANFO" MEANS ELSEWHERE.
"U" MEANS CONDITIONAL UNDER "UML" ASSEMBLY SWITCH.
HERE ARE SOME MONITOR LEVEL COMMANDS:
REE ASKS "RESTART?". IF YOU TYPE "Y<CR>", WHATEVER YOU WERE
DOING WILL BE ABORTED AND THE PROGRAM RESTARTED IN THE MAIN
COMMAND LOOP. THE DRAWING IS NOT FLUSHED. EXTREME CAUTION
SHOULD BE USED WITH THIS COMMAND BECAUSE ↑C TO THE PROGRAM
CAN LEAVE THE DATA STRUCTURE IN AN INCONSISTENT STATE.
IN GENERAL IF THE PROGRAM IS IN INPUT WAIT, OR UPDATING
THE DISPLAY, IT IS SAFE.
IF YOU DON'T TYPE "Y<CR>", YOU WILL BE ASKED A SECOND
QUESTION. "FLUSH MACROS?". IF YOU TYPE "Y<CR>" TO THIS
ANY MACROS IN PROGRESS WILL BE TERMINATED AS SOON AS POSSIBLE.
IN ANY CASE THE PROGRAM CONTINUES FROM THE POINT AT WHICH
YOU TYPED ↑C.
FIRST THE FOUR BASIC MODE SWITCHING COMMANDS:
EACH OF THE FOLLOWING COMMANDS FINDS THE CLOSEST PRIMITIVE
IN THE DRAWING AND MAKES IT THE "CLOSEST" PRIMITIVE. IF YOU
ARE FINDING BODIES YOU MAY NOT DO OPERATIONS ON POINTS, ETC.
εP FIND THE CLOSEST POINT. A LARGE P INDICATES THE POINT.
IF THE POINT HAS TEXT ON IT A LARGE T IS USED.
εT SAME AS εP EXCEPT THAT THE ONLY POINTS WHICH WILL
BE FOUND ARE THOSE WITH TEXT ON THEM.
εL FIND THE CLOSEST LINE. A LINE IS NOT "CLOSE" TO A POINT
UNLESS THE PERPENDICULAR FROM THE POINT TO THE LINE
INTERSECTS THE SEGMENT WHICH IS THE LINE. A LARGE L
INDICATES THE MIDPOINT OF THE LINE.
εB FIND THE CLOSEST BODY. A LARGE B IS PLACED
AT THE CENTER OF THE BODY.
εS FIND THE CLOSEST SET. A LARGE S IS PLACED AT THE
CENTER OF THE SET. THE CENTER OF A SET IS THE
AVERAGE OF THE LOCATIONS OF ITS MEMBERS.
THE FOLLOWING 4 CHARACTERS INDICATE WHICH KIND OF INPUT YOU ARE DOING:
* WAITING FOR SINGLE LETTER COMMAND
← WAITING FOR SINGLE LETTER, NOT COMMAND
↑ (AT DEC)
→ (NOT AT DEC)
WAITING IN LINE MODE (ONLY USED DURING MACROES TO INDICATE THIS,
OTHERWISE NO CHARACTER).
: WAITING IN LINE MODE FOR A MULTI-STRING VARIABLE
SPECIAL CONTROL CHARACTERS AT ALL LEVELS!
ε! REFRESH DISPLAY.
NOW FOR THE COMMANDS YOU CAN GIVE ANYTIME:
THE FOLLOWING MOVE THE DRAWING UP, DOWN, LEFT, AND RIGHT.
THE AMOUNT IS DETERMINED BY THE FOLLOWING:
<NOTHING> 1/8 WINDOW
α 1/4 WINDOW
β 1/2 WINDOW
ε 1 WINDOW
AT DEC NOT AT DEC MOVEMENT
< ← LEFT
> → RIGHT
[ ↑ UP
] ↓ DOWN
SIZE CONTROLS:
λ* MAKE THE DRAWING SMALLER.
λ⊗ MAKE THE DRAWING LARGER.
CHAR NEW SCALE
* SCALE-1
α* SCALE*4/5
β* SCALE*2/3
ε* SCALE*1/2
⊗ SCALE+1
α⊗ SCALE*5/4
β⊗ SCALE*3/2
ε⊗ SCALE*2
CURSOR MOVING AMOUNTS:
<JUST CHARACTER> 1 STEP
α 2 STEPS
β 4 STEPS
ε 8 STEPS
<TOP> 16 STEPS
α<TOP> 32 STEPS
β<TOP> 64 STEPS
ε<TOP> 128 STEPS
( [ LEFT
) ] RIGHT
/ ∂ UP
\ ∞ DOWN
ε& ZERO "CURRENT" SET POINTER. THE "CURRENT" SET IS THE ONE
WHICH GETS THINGS ADDED TO IT BY α&.
εP FIND CLOSEST POINT. SEE ABOVE.
εT FIND CLOSEST POINT WITH TEXT ON IT. SEE ABOVE.
εL FIND CLOSEST LINE. SEE ABOVE.
εB FIND CLOSEST BODY. SEE ABOVE.
λ@ SAME AS "XDSKIN<CR>".
αC MOVE THE CURSOR TO THE PHYSICAL CENTER OF THE SCREEN
βC MOVES THE CURSOR AND THE POINT IN THE DRAWING AT WHICH IT
RESIDES TO THE PHYSICAL CENTER OF THE SCREEN.
εC SET THE OFFSET AND THE CURSOR POS TO 0. (i.e. MOVE THE
CURSOR AND LOGICAL 0,0 TO THE CENTER OF THE SCREEN).
εE EDIT (OR CREATE) A BODY. YOU ARE ASKED "BODY TYPE?" THEN
"DIP TYPE?". FIRST MAY NOT BE NULL, BUT SECOND CAN.
YOU ENTER THE EDITOR WITH IT (OR EMPTY). IF THE BODY DID
NOT EXIST BEFORE IT DOES NOW.
αI INPUT BODY DEFINITIONS FROM A DRAWING FILE. THIS ALLOWS YOU TO DEFINE
BODIES ONLY ONCE AND USE THEM IN ALL DRAWINGS.
βI INPUT A DRAWING.
εI INPUT BODY DEFINITIONS ONLY. WHEN A CONFLICT ARISES (BODY
ALREADY EXISTS), REPLACEMENT IS AUTOMATICALLY EFFECTED BY
A GEOMETRIC MAPPING!
αL LIST ALL THE BODY TYPES ON THE TTY. FOR LIBRARY BODIES THE
LIBRARY NAME IS ALSO LISTED.
βL LIST ALL THE BODY TYPES INTO A FILE WITH DEFAULT EXTENSION 'LST'.
ALSO LISTED IN THE FILE ARE ALL THE PLOT LABEL STRINGS.
αW WRITE OUT A WHOLE DRAWING IF THE FILENAME HAS NO
"." IN IT THE EXTENSION ".DRW" (OR ".PC" FOR PC PROG) WILL BE ATTACHED.
IF YOU SAY <EXISTS> IN PLACE OF THE FILENAME THE LAST ONE USED
ON MAJOR INPUT OR OUTPUT WILL BE USED; IF NO PPN ARE GIVEN,
THEY ALSO WILL BE THE LAST ONES USED ON INPUT. IF OTHER
THAN THE LAST FILENAME AND PPN USED ON INPUT IS GIVEN,
A CHECK IS MADE TO SEE IF IT EXISTS ALREADY.
βW WRITE A WIRE LIST FILE. THE EXTENSION ".WD" (OR ".WPC" FOR PC PROG) IS
THE DEFAULT.
εW WRITE A PLOT FILE. THE EXTENSION "".DPL" AT DEC, .PLT" NOT AT DEC
(OR ".PCP" FOR PC PROG) WILL BE USED IF NONE IS SPECIFIED.
? USED IN CONJUNCTION WITH "IWIRES" OR "IERRORS" COMMANDS.
STEPS THROUGH THE SIGNALS IN THE INTERNAL LIST ONE AT A TIME
WHICH ALLOWS YOU TO CORRECT THE ERRORS (IERRORS) OR JUST LOOK
AT ALL SIGNALS (IWIRES). THE IWIRES IS USEFUL FOR LOOKING
AT ROUTER ERRORS BY RUN # SINCE THE RUN # IS DETERMINED BY
THE ORDER OF THE WDR FILE.
αH ASKS FOR A VARIABLE NAME AND INCREMENTS THE VARIABLE.
NUMERIC VARIABLES GET THE NEXT VALUE; STRING
VARIABLES ARE SEARCHED FOR A NUMBER AND +1 IS ADDED;
MULTI-STRING VARIABLES GET SET TO THE NEXT STRING.
UPON REACHING THE LAST STRING, A MULTI-STRING VARIABLE
BECOMES A NULL STRING. (SEE ALSO ;H UNDER MACRO COMMANDS.)
βH DEFINES A VARIABLE. ASKS FOR A DEFINITION. TYPE
<NAME>←<STRING> TO DEFINE A STRING VARIABLE OR
<NAME>:<STRING1><CR><STRING2><CR>...<CR><CR> TO
DEFINE A MULTI-STRING VARIABLE OR
<NAME>=<SUCCESSIVE VALUES> TO DEFINE A NUMERIC VARIABLE.
<NAME> IS ANY LENGTH AND CONSISTS OF THE CHARACTERS
A-Z, 0-9, . (PERIOD), %, $ (DOLLAR SIGN).
<SUCCESSIVE VALUES> CONSISTS OF A STRING OF <VALUE>'S OR
<ITERATION SPEC>'S SEPARATED BY COMMAS AND ENDING WITH
CARRIAGE RETURN. <VALUE> IS AN ALPHABETIC CHARACTER OR
A NUMBER (WITH OPTIONAL MINUS SIGN IN FRONT).
<ITERATION SPEC> IS <VALUE>(<INCREMENT>)<ENDVALUE>
OR <ITERATION SPEC>(<INCREMENT>)<ENDVALUE>.
IF <VALUE> IS ALPHABETIC IN AN ITERATION SPEC, THEN
<ENDVALUE> MUST ALSO BE ALPHABETIC. INCREMENTING AN
ALPHABETIC CHARACTER IS DONE ACCORDING TO THE DEC
ALPHABET. IF ADDING THE INCREMENT TO THE CURRENT VALUE
EXCEEDS (OR EQUALS) THE ENDVALUE, THEN THE VARIABLE IS
EQUAL TO THE ENDVALUE. IF THE CURRENT VALUE IS >0, THE
CURRENT VALUE IS PADDED WITH ENOUGH LEADING ZEROS TO
MATCH THE LENGTH OF THE INITIAL <VALUE> OF THE ITERATION
SPEC. IF THE <ENDVALUE> IS OMITTED AT THE END OF THE
DEFINITION, THE LAST (<INCREMENT>) GETS USED
INDEFINITELY. (THIS IS THE ONLY PLACE WHERE A ZERO
INCREMENT IS LEGAL.) IF THE DEFINITION ENDS WITH
A <VALUE> OR <ENDVALUE> AND INCREMENTING IS CONTINUED
BEYOND THE END OF THE DEFINITION, +1 BECOMES THE DEFAULT
INCREMENT.
εH TYPES ALL VARIABLES AND THEIR CURRENT VALUES ON THE TTY.
α" IF TEXT ON THIS POINT, ASKS FOR TEXT MACRO NAME. THEN
STORES A COPY OF THE THE TEXT IN THE MACRO. NULL MACRO
IF NOT TEXT.
β" ASKS FOR MACRO NAME, THEN STUFFS A STRING IN IT
REPRESENTING THE PIN NAME ON THIS POINT. IF NOT
PIN, NULL STRING RESULTS.
FOR CPIN STRING IS:
BAY/TOPRACK/BOTTOMRACK/SLOT/PADDLE/PIN/SIDE
FOR DIP PIN STRING IS:
BAY/TOPRACK/BOTTOMRACK/SLOT/DIPLETTER/DIPNUMBER"("PINNUMBER")"
NODEC α&
DEC α% <CURRENT SET>←<CURRENT SET> UNION <CLOSEST POINT>
POINT MAY NOT BE A BODY ATTACHEMENT POINT. IN PC
POINT MAY NOT BE A CONNECTOR PIN.
NODEC β&
DEC β% TRACE CONNECTIONS TO THIS POINT THROUGH BODIES AND POINTS
AND PUT EVERYTHING FOUND IN A SET, ENTER SET MODE AND MOVE
CURSOR TO SET CENTER AND MAKE SURE IT IS ON SCREEN.
NODEC ε&
DEC ε% CLEAR <CURRENT SET>.
α# REMOVE POINT FROM CURRENT SET.
β# REMOVE POINT FROM ALL SETS.
D εF ASKS "SEARCH STRING". IF ENDED WITH ALTMODE NOTHING IS DONE.
IF NULL STRING, OLD ONE WILL BE USED IF ANY. SEARCHES FOR
ALL POINTS WHOSE TEXT HAVE THE SEARCH STRING AS A SUBSTRING.
THE SPECIAL CHARS ALLOWED ARE DESCRIBE IN THE "F" COMMAND
IN ALTER MODE DESCRIPTION. IF A MATCH IS FOUND, THE POINT
IS MARKED FOR LATER REFERENCE.
D βF ASKS "SEARCH STRING". CONNECTOR AND DIP PIN NAMES
ARE CONVERTED TO STRINGS AS IN β" AND MATCHED AGAINST
THE STRING YOU TYPE AS IN εF.
D αF FIND A MARKED POINT. IF ON SCREEN, MOVE CURSOR THERE. IF NOT
MOVE IT TO SCREEN CENTER AND MOVE CURSOR THERE.
L . SAVE NAME OF THIS PIN (MUST BE BODY PIN OR CONNECTOR
PIN), AND GO TO THE OTHER PROG. IT IS THEN LOOKED UP
IN THE OTHER PROG. IF IT IS FOUND, IT AND THE CURSOR
ARE BROUGHT TO THE CENTER OF THE SCREEN. IF PC AND
A CONNECTOR PIN, YOU ARE PLACED ON THE PROPER SIDE OF
THE CARD.
α. (PERIOD) TRACE WIRE ATTACHED TO THIS POINT AND FLASH IT.
TRACING INCLUDES WIRES WITH SAME SIGNAL NAMES (D ONLY).
IF ANY CONS ARE ON THE WIRE, BUT OFF SCREEN, ONE OF THEM
IS FLASHED IN THE UPPER RIGHT CORNER OF THE SCREEN(D ONLY).
L ALL PINS FOUND ARE PUT IN A LIST AND LOOKED UP IN THE
OTHER PROG THE NEXT TIME YOU GO THERE, THEN THEY AND
ANY POINTS THEY CONNECT TO ARE FLASHED.
β. EQUIVALENT TO "α." FOLLOWED BY "εV" IF LAYOUT VERSION
OTHERWISE SAME AS "α.".
LRPC ε. ENTER ROUTING MODE FOR FLASHING PINS.
PROGRAM RESPONDS WITH "ROUTING PAIR = ".
YOU WILL NOTICE THAT THE FLASHING PINS HAVE
LETTERS ON THEM. TYPING TWO OF THE LETTERS
FOLLOWED BY CR, CAUSES THE ROUTING ROUTINE
TO BE ENTERED WITH THESE TWO PINS AS THE
ENDPOINTS. ALL THE NORMAL COMMANDS APPLY TO THE ROUTING
ROUTINE (NORMALLY ENTERED BY "εE") UP UNTIL THE TIME
THAT YOU LEAVE IT. TYPING "ALTMODE" CAUSES YOU TO LEAVE
ROUTING MODE. ANYTHING FUNNY GETS YOU THE
QUERY AGAIN!
LRD ε. EQUIVALENT TO "εV" FOLLOWED BY "ε."!
λJ<letter> FINDS LETTER <letter> OF FLASHING PINS AND MOVES
CURSOR THERE (IF POSSIBLE). ONLY WORKS WHEN LETTERS ARE
BEING SHOWN! (ALSO WORKS FOR JUMPING TO "SHORT" ERRORS
IF YOU TYPE A NUMBER INSTEAD OF A LETTER).
λJ←<number>
THIS FINDS THE nTH FLASH CONNECTOR PIN (DEFAULT IS 1)
AND JUMPS TO IT.
εA IF THE CLOSEST POINT HAS TEXT ON IT YOU ENTER ALTER MODE!
ALTER MODE IS A TEXT EDITOR DESCRIBED BELOW
RPC αE SET ENDPOINT ONE FOR ROUTING. A "←" INDICATES ENDPOINT ONE.
RPC βE SET ENDPOINT TWO FOR ROUTING. A "↔" INDICATES ENDPOINT TWO.
RPC εE MAKE A ROUTE FROM ENDPOINT ONE TO TWO. THE ALGORITHM
COMPUTES SCORES FOR ROUTES. IT TRIES TO FIND ROUTES WITH
SCORES OF 0 FIRST, THEN 1, ETC. WHEN A ROUTE IS FOUND YOU
WILL BE ASKED "HOW ABOUT THIS ONE" AND THE ROUTE WILL BE
BLINKED. WIRES ON THE CURRENT SIDE WILL BE BRIGHTER THAN
THOSE ON THE OTHER. IF YOU RESPOND "Y" THE ROUTE WILL BE
MADE AND MARKED. IF YOU SAY " " (SPACE) THE ROUTE WILL BE
DISCARDED AND ANOTHER FOUND. IF YOU SAY "α " (CTRL SPACE)
THE PROGRAM WILL SHIFT TO THE NEXT HIGHEST SCORE AND
CONTINUE LOOKING. IF YOU SAY "ε$" ALTMODE THE PROGRAM WILL
JUST QUIT. ANYTHING ELSE WILL GET YOU "???" AND THE
QUESTION REPEATED. ALTMODE AND CTRL SPACE WILL WORK EVEN
WHEN THE PROGRAM IS RUNNING (KEYBOARD INPUT ONLY)!
BODY MODE:
THE FOLLOWING COMMANDS APPLY IF THE LAST PRIMITIVE SEARCH COMMAND WAS
εB AND A BODY WAS FOUND.
αP PLACE A BODY AT THE CURRENT CURSOR POSITION. YOU
ARE THEN PLACED IN MOVE MODE ON THAT BODY.
PC PIN 1 GETS PAD TYPE 3 ALL THE OTHERS GET PAD TYPE 1.
D αE EDIT THE CLOSEST BODY.
D αR REPLACE THE CLOSEST BODY. YOU WILL BE ASKED FOR NEW BODY
PC αG NAME THEN THE YOU MAY SET THE REPLACEMENT MODE. IF YOU
ANSWER "E", OR "N", THEN THE CORRESPONDENCE IS MADE BETWEEN
PINS WITH IDENTICAL DEFAULT PIN NAMES (INCLUDING /B-L PART).
ONLY PINS WHICH MATCH UNIQUELY ARE DONE, IF ALL PINS CANNOT
BE UNIQUELY MATCHED IN "E" MODE, THEN YOU GET AN ERROR MESSAGE
AND NOTHING IS DONE. IF YOU ANSWER "L" TO THE REQUEST, THEN A GEOMETRIC
(CLOSEST PIN) MAPPING IS USED. IF YOU ANSWER "C" TO THE
REQUEST A GEOMETRIC MAPPING WHICH WORKS FOR DIFFERENT #S
OF PINS WILL BE USED. IF YOU ANSWER <CRLF> THEN YOU WILL BE
ASKED FOR THE CORRESPONDENCE PIN BY PIN. ANY UNSPECIFIED
PINS ON THE OLD BODY ARE DELETED, ANY UNSPECIFIED PINS ON
THE NEW BODY ARE CREATED. IN "L" MODE, IF EACH PIN CANNOT
BE MATCHED TO ANOTHER YOU WILL BE THROWN OUT. DURING THE ASKING
OF THE CORRESPONDENCE QUESTION, BOTH THE OLD AND NEW BODIES
WILL BE DISPLAYED WITH PIN IDS SHOWN FOR REFERENCE. THE OLD
BODY WILL BE ON THE LEFT.
D βR REPLACE SOME. ASKS FOR OLD BODY NAME, THEN NEW BODY NAME,
PC βG THEN SETS UP CORRESPONDENCE AS IN αR, THEN PUTS A "*" ON
EACH INSTANCE OF THE OLD BODY AND ASKS "THIS ONE?" IF YOU
SAY "Y", IT IS REPLACED, OTHERWISE IT IS NOT. IF YOU SAY
ALTMODE YOU GET BACK TO BODY MODE.
D εR REPLACE ALL. LIKE REPLACE SOME EXCEPT YOU AREN'T ASKED.
PC εG "
αD DELETE THE CLOSEST BODY.
βD DELETE THE CLOSEST BODY, PINS ARE TURNED INTO POINTS
INSTEAD OF BEING DELETED.
αM MOVE THE CLOSEST BODY. THE CURSOR IS PUT AT THE CENTER OF
THE BODY. THEN ALL PINS ON THE BODY ARE MASSAGED AS THE
BODY IS MOVED. ANY CHARACTER STOPS YOU MOVING.
αN "NUMBER" THE CLOSEST BODY. NUMBERS MAY BE OF THE FOLLOWING
FORM:
D #LL#L# (BAY/TOPRACK/BOTTOMRACK/SLOT/DIP COORDS LETTER/NUMBER)
OR
L# (DIP COORDS LETTER/NUMBER)
IF THE LOCATION OFFSET IS FOLLOWED BY "-n" THEN n IS USED
TO DO AN εN TO THIS BODY. ALSO AN "L", "R", OR "*" MAY FOLLOW,
WHICH WILL BE USED TO DO A βT TO THE BODY. THE OFFSET OF
THE LOCATION STUFF IS SET TO THAT IN THE BODY DEFINITION,
ALSO A BIT IS TURNED ON WHICH CAUSES ANY CHANGES TO THAT
OFFSET IN THE DEFINITION TO BE UPDATED IN EACH BODY WITH
THE BIT ON. THE BIT IS TURNED OFF BY THE βN COMMAND.
D βN LEGAL ONLY IF αN DONE PREVIOUSLY. PUTS YOU AT CURRENT
OFFSET FOR LOC TEXT AND LETS YOU MOVE IT. THIS OFFSET
IS SCALED BY DRAWING SCALE, NOT CHAR SIZE. THIS COMMAND
TURNS OFF THE BIT WHICH CAUSES THIS LOC TO FOLLOW THE
OFFSET SET IN THE BODY DEFINITION.
D εN IF THERE IS A DIP TYPE SET, READS THE DIP DEFINITION
FROM THE FILE DIPS.DIP ON THE LIBRARY AREA. THEN ASKS WHICH SECTION
YOU WANT THE PINS FROM, AND USES THE DEFAULT PIN NAMES AS A MASK
TO MAP THE PIN #'S AND SET THEM.
αO ROTATE CLOSEST BODY 90 DEGREES COUNTER CLOCKWISE.
MIRROR IMAGE THE BODY AFTER ROTATING 360 DEGREES.
αS SWAP. ASKS FOR TWO PIN ID'S (PIN #'S IN PC). IF
THEY EXIST ON THIS BODY ALL LINES, TEXT, AND
ANYTHING ELSE ARE SWAPPED BETWEEN THESE TWO POINTS.
WHILE ASKING FOR PIN IDS, THEY ARE DISPLAYED ON THE BODY.
D βS SWAP PIN #'S. ANY PIN #'S ASSOCIATED WITH THE ID'S
YOU TYPE WILL BE INTERCHANGED.
D βT ASK FOR AN "L", "R", OR "*". "L" MEANS PIN 1 OF DIP GOES TO
PIN 2 OF SOCKET. "R" MEANS PIN 1 OF DIP GOES TO PIN
1 OF SOCKET. "*" MEANS TURN OFF PREVIOUS "R" OR "L".
THIS MERELY SETS BITS IN THE BODY WHICH
ARE PASSED TO THE WIRE LISTER WITH THE PIN#. IF A PIN
# NEEDS 1 ADDED TO IT TO GET THE SOCKET PIN # THEN
A "+" WILL APPEAR AFTER IT, IF IT NEEDS 2 ADDED TO IT
A "+2" WILL APPEAR AFTER IT.
D βP SET PIN #'S FROM DEFAULT PIN NAMES.
NODEC α&
DEC α% <CURRENT SET>←<CURRENT SET> UNION <CLOSEST BODY>
NODEC β&
DEC β% TRACE CONNECTIONS TO THIS BODY THROUGH POINTS AND BODIES
AND PUT EVERYTHING FOUND IN A SET, ENTER SET MODE AND MOVE
CURSOR TO SET CENTER AND MAKE SURE IT IS ON SCREEN.
NODEC ε&
DEC ε% CLEAR <CURRENT SET>.
NODEC α≡
DEC α5 TRACE ALL PINS ON THIS BODY TO THE NEXT POINT.
IF IT IS NOT A PIN ON ANOTHER BODY, PUT IT
IN A SET WITH THIS BODY. THEN ENTER SET MODE AND
PLACE CURSOR AT SET CENTER.
α# REMOVE BODY FROM CURRENT SET.
β# REMOVE BODY FROM ALL SETS.
εF ASKS "SEARCH STRING". IF ALTMODE TYPED NOTHING IS DONE.
IF NULL STRING, PREVIOUS SEARCH IS REPEATED.
FOR EACH BODY, THE NAME (D) OR A STRING OF DIGITS REPRESENTING
THE # OF PINS (PC) IS MATCHED AGAINST THE SEARCH STRING.
IF A MATCH OCCURS, THE BODY IS MARKED FOR LATER.
βF ASKS "SEARCH STRING". IF ALTMODE TYPED NOTHING IS DONE.
IF NULL STRING, PREVIOUS SEARCH IS REPEATED.
CONVERTS THE LOCATION OF EACH BODY INTO A STRING AND MATCHES
IT AGAINST THE SEARCH STRING. MATCHES ARE MARKED.
αF FIND NEXT BODY. SEARCHES DOWN THE BODY LIST FOR A MARKED BODY.
IF ONE IS FOUND, THE CURSOR IS PLACED ON IT AND IT IS
BROUGHT ON SCREEN (IF OFF).
D α" PUT BODY NAME INTO MACRO.
PC α" MAKE MACRO OF # OF PINS (STRING OF DIGITS). IF 2 PIN DIP,
A <LF> AND THE SEPARATION IN MILS IS ALSO ADDED.
β" MAKE MACRO WITH LOCATION TEXT IN IT. NULL MACRO IF NO LOC.
ε" MAKE MACRO OUT OF DIP NAME. NULL MACRO IF NO DIP TYPE.
D αT PLACE BODY TEXT (SEE BODY TEXT/PROPERTY MODE).
D αY PLACE BODY PROPERTY (NEW OR OLD). (SEE BODY TEXT/PROPERTY MODE)
D βY CHANGE BODY PROPERTY (OLD). (SEE BODY TEXT/PROPERTY MODE)
D εY ENTER BODY TEXT/PROPERTY MODE.
THE CLOSEST BODY BECOMES THE "CURRENT" BODY, THAT IS
THE ONE WHOSE TEXT/PROPERTIES YOU ARE MANIPULATING.
BODY TEXT/PROPERTY MODE:
CLOSEST BODY TEXT IS INDICATED BY A "BT".
INVISIBLE BODY TEXT WILL NOT BE FOUND UNLESS MADE VISIBLE ("XIDENTS").
D αT LIKE αT IN EDIT TEXT/PROPERTY MODE, BUT TEXT IS
ASSOCIATED WITH THE CURRENT BODY NOT THE DEFINITION.
D αY LIKE αY IN EDIT TEXT/PROPERTY MODE, BUT IF PROPERTY
ALREADY EXISTED IN BODY DEF, THAT VERSION OF THE
PROPERTY IS NO LONGER DISPLAYED. ALSO THE NEW PROPERTY
TEXT IS NOT AFFECTED BY CHANGES TO THE BODY DEFINITION.
D βY LIKE βY IN EDIT TEXT/PROPERTY MODE, BUT WITH SAME
DIFFERENCES AS αY IN BODY TEXT/PROPERTY MODE.
D αK STOP DISPLAYING. IF TEXT, DELETE. IF PROPERTY, MAKE
IT INVISIBLE.
D αD DELETE TEXT OR PROPERTY.
D βD MAKE PROPERTY INTO ORDINARY TEXT.
D αM MOVE TEXT. TEXT FOLLOWS CURSOR UNTIL YOU TYPE
SPACE OR ALTMODE.
D βM MOVE TEXT OFFSET.
D εM MOVE TEXT, BUT START BY MOVING TEXT TO CURSOR.
D εA ENTER ALTER MODE WITH CLOSEST TEXT.
D
STANFO αZ LINE EDIT TEXT. LINE EDITOR CURSOR IS AT BEGINNING OF LINE.
D
STANFO αQ LINE EDIT TEXT. LINE EDITOR CURSOR IS AT END OF LINE.
D εZ RECALCULATE TEXT OFFSET TO CENTER IT OVER MOVE POINT.
TEXT IS NOW AUTOMATICALLY OFFSET WHEN CHANGED.
D ε$ ALTMODE
D <SPACE> STOP MOVING.
D α" STORE TEXT INTO MACRO.
D β" STORE PROPERTY NAME INTO MACRO.
D αF FIND NEXT TEXT/PROPERTY WHICH WAS MARKED BY βF OR εF.
D βF FIND AND MARK ALL PROPERTIES WHICH HAVE THE STRING
YOU TYPE AS A SUBSTRING OF THEIR PROPERTY NAMES.
D εF FIND AND MARK ALL TEXT/PROPERTIES WHICH HAVE THE STRING
YOU TYPE AS A SUBSTRING OF THEIR TEXT.
D αE ENTER BODY EDITOR WITH CURRENT BODY.
BODY TEXT/PROPERTY MODE EXTENDED COMMANDS:
D TMOVE MOVE TEXT OFFSET WITH CURSOR COMMANDS.
SET MODE:
THE FOLLOWING COMMANDS APPLY IF THE LAST PRIMITIVE SEARCH COMMAND WAS
εS AND A SET WAS FOUND
λ+ DRAW A BOX AROUND THE POINTS AND BODIES YOU WOULD
LIKE IN THE SET, USING + LIKE WITH DRAWING LINES.
SAY - TO CLOSE THE BOX AND THE SET IS DEFINED.
ALL MEMBERS OF THE SET WILL HAVE B'S OR P'S ON THEM.
PSEUDO-CENTER IS INDICATED BY AN S.
βP MAKES A COPY OF THE CLOSEST SET AT
THE CURRENT CURSOR LOCATION, THEN
PUTS YOU IN MOVE-THE-SET MODE (SEE BELOW).
αM POSITIONS THE CURSOR ON THE CENTER OF THE
SET. THE SET NOW FOLLOWS THE
CURSOR. THE SET MEMBERS ARE AGAIN INDICATED.
εM LIKE αM, EXCEPT THAT THE SET IS MOVED TO
THE CURSOR BEFORE MOVING IS STARTED.
αD DELETE THE CLOSEST SET.
βD DELETE ALL ELEMENTS OF THE CLOSEST SET FROM THE PICTURE.
εD DELETE ANYTHING NOT IN CLOSEST SET.
THE <EXISTS> NAME IS FORGOTTEN.
PC αO ROTATE SET 90 DEGREES COUNTER CLOCKWISE.
βK DELETE ALL TEXT ON POINTS IN SET!
NODEC α&
DEC α% <CURRENT SET>←<CURRENT SET> UNION <CLOSEST SET>
THIS MAKES A NEW SET IF THERE IS NO CURRENT SET.
NODEC β&
DEC β% <CURRENT SET>←≡<CLOSEST SET> DOESN'T MAKE NEW SET
NODEC ε&
DEC ε% CLEAR <CURRENT SET>.
α# REMOVE ALL MEMBERS OF CLOSEST SET FROM CURRENT SET.
ILLEGAL IF CURRENT SET IS CLOSEST.
β# REMOVE ALL MEMBERS OF CLOSEST SET FROM ALL SETS.
THEN DELETE CLOSEST SET.
αJ MOVE CURSOR TO CURRENT SET AND MAKE IT CLOSEST.
LINE MODE:
THE FOLLOWING COMMANDS APPLY IF THE LAST PRIMITIVE SEARCH COMMAND WAS
εL AND A LINE WAS FOUND.
αD DELETE THE LINE. DOES NOT AFFECT ITS ENDPOINTS.
PC βD DELETE A WIRE. DELETES THE CLOSEST LINE, THEN FOLLOWS
LINES LEAVING THE ENPOINTS OF THE ORIGINAL LINE, DELETING
AS IT GOES. IT ALSO FOLLOW FEEDTHROUGHS THROUGH THE
BOARD, BUT NOT DIP PINS. THIS PROGRESSES UNTIL A JUNCTION
IS REACHED.
αB PUTS A BEND ON THE LINE EVEN WITH THE CURSOR (MAKES IT
INTO 3 SEGMENTS). YOU ARE THEN MOVING THE MID-POINT.
D βB PUTS A POINT ON THE LINE EVEN WITH THE CURSOR.
PC αJ "JUMPS" SEGMENT TO OTHER SIDE OF PC CARD, CREATING OR
DELETING FEED THROUGHS AS NECESSARY.
PC βJ "JUMPS" A "WIRE" TO THE OTHER SIDE OF THE PC CARD, CREATING
OR DELETING FEED THROUGHS AS NECESSARY. A "WIRE" IS THE
CLOSEST SEGMENT TRACED THROUGH ADJOINING SEGMENTS UNTIL
ONE OF THE FOLLOWING IS REACHED; A FEED THROUGH, A PIN,
OR A JUNCTION!
ALTER MODE:
λ0-λ9 NUMBERS ARE REMEBERED AND USED AS REPEAT FACTORS
FOR SOME COMMANDS. THESE COMMANDS ARE PRECEEDED
BY <n>.
- PRECEDES <n> USED IN SOME COMANDS TO DO
BACKWARDS DELETE, MOVE,ETC. USE IN COMMAND
INDICATED BY <->.
\<size> Text alter mode and edit alter mode only. This sets
the character size of the this piece of text. The
format is the same as for text typin:
<size> = V<digit 1-4>
"V" IS OPTIONAL (FOR VERTICAL TEXT)
<n>S<char> MOVE TO CHAR (END IF NOT FOUND)
IF FOUND POINTER IS AFTER CHARACTER.
<-><n>D DELETE n CHARACTERS (NO-OP AT END)
IF <->, N CHARACTER BEFORE POINTER ARE DELETED.
<n>C<STRING OF LENGTH N>
CHANGES THE NEXT N CHARACTERS IN THE TEXT
TO THE NEXT N CAHRACTERS TYPED. ALT MODE (ε$)
OR <CR> TYPED IN <STRING> CAUSES THE CORRESPONDING
TEXT CHARACTER TO BE UNCHANGED.
<-><n><space> MOVE FORWARD n SPACES (NO-OP AT END OF LINE)
IF <->, MOVE BACKWARDS.
<-><n><backspace> MOVE BACKWARD n SPACES (NO-OP AT BEGINNING OF LINE)
IF <->, MOVE FORWARDS.
I ASKS "INSERT TEXT←" AND INSERTS THE STRING YOU TYPE.
TEXT IS INSERTED BEFORE THE CURRENT CHAR WHICH
REMAINS THE CURRENT CHAR.
<-><n>R EQUIVALENT TO "<-><N>DI".
ε$ <altmode> LEAVE ALTER MODE.
<n>K<char> DELETE UP TO AND INCLUDING THE NTH OCCURENCE OF
<char>. NO DELETE IF NOT FOUND BUT LEAVES YOU AT
END OF LINE.
<n>N SEARCH TO nTH NUMBER (A NUMBER IS ANY CONTIGUOUS
SEGMENT OF DIGITS). END OF LINE IF NOT FOUND.
<n># SEARCH TO nTH NUMBER. IF FOUND ASK FOR TEXT MACRO
NAME, AND STORE STRING OF DIGITS IN IT.
THIS MACRO MAY NOW BE CALLED WHERE EVER YOU NEED
A NUMBER!
<n>U SEARCH TO nTH NUMBER AND DELETE IT.
<n>F<string><t> SEARCHES FOR THE Nth OCCURENCE OF <string> AS A
SUBSTRING OF THE CURRENT TEXT. IF FOUND AND
t=ALTMODE THEN DELETE THIS OCCURENCE <string>
OTHERWISE DONE. IF t≠ALTMODE THEN t MUST = CRLF.
PC????? IF STRING IS NULL, NO SEARCH IS DONE
D IF STRING IS NULL, THEN "SEARCH STRING" IS USED
UNLESS IT IS ALSO NULL IN WHICH CASE NO SEARCH
IS DONE.
HERE IS HOW THE MATCHING IS DONE:
IF THE FLAG FOR "SPACES" IS OFF (DEFAULT EXCEPT AT DEC) THEN ANY
SPACES IN EITHER THE STRING OR THE SEARCH STRING
ARE IGNORED, OTHERWISE THEY ARE NORMAL CHARS.
↔ IS CONVERTED TO A SPACE. IF THE FLAG "EXACT"
IS OFF (DEFAULT) THEN LOWER CASE CHARS ARE CONVERTED
TO UPPER CASE.
THE FOLLOWING SPECIAL CHARS ARE CURRENTLY RECOGNIZED:
NODEC DEC
| | BEGINNING OR END OF LINE.
↑T ? ANY CHARACTER.
≠ ↑E INVERT MATCH CONDITION ON NEXT THING.
∞ ↑N ANY NUMBER OF NEXT THING WILL MATCH, INCLUDING 0.
SMALLEST NUMBER OF CHARACTERS NECESSARY WILL BE USED.
≡ ↑↑ QUOTE NEXT CHARACTER.
$ $ (DOLLAR SIGN) MATCH ANY LETTER.
% % MATCH ANY DIGIT (0-9).
↓ ↓ MATCH ANY ALPHANUMERIC.
EDIT MODE:
THE EDITOR STARTS UP IN "EDIT MODE".
LEGAL COMMANDS ANY TIME ARE:
εP ENTER PIN MODE.
εT ENTER TEXT/PROPERTY MODE.
αI ENTER INSERT MODE. THE CURRENT POINT IS SET TO THE FIRST
POINT OF THE BODY AND THE CURSOR IS PUT THERE.
ε$(ALTMODE) RETURN TO EDIT MODE!
αP SET A PIN. POSITION THE CURSOR FIRST. YOU WILL BE ASKED
"PIN NAME?". TYPE A DECIMAL NUMBER. THE PIN WILL APPEAR AT
THE CURSOR POSITION.
YOU MAY ALSO FOLLOW THE THE PIN NAME WITH:
</<B>><-<H,L,>>
<> PAIRS INDICATE OPTIONAL ARGUMENTS. THE <H,L,> MEANS
H, L, OR NOTHING. THE /B SETS THIS PIN AS A BUSSED THROUGH
OCCURENCE OF THE THE PINS WITH THIS DEFAULT NAME. / WITH
NO B AFTER IT CLEARS THIS. A BUSSED THROUGH PIN IS THE SAME
PHYSICAL PIN, BUT THE PIN # WON'T PLOT. -<H,L,> SETS
THE DEFAULT POLARITY TO HI, LOW, OR NONE RESPECTIVELY.
αT PLACE TEXT (SEE EDIT TEXT/PROPERTY MODE).
αY PLACE NEW OR CHANGE OLD PROPERTY (SEE EDIT TEXT/PROPERTY MODE).
βY CHANGE OLD PROPERTY, CLOSEST MATCH ON NAME.
(SEE EDIT TEXT/PROPERTY MODE).
αE EXIT THE EDITOR. (RETURN TO DRAWING LEVEL AND MODE LAST
USED THERE.)
EXTENDED COMMANDS IN EDITOR:
DISLOC ALWAYS DISPLAY LOCATION TEXT ON EACH INSTANCE
OF THIS BODY IN DRAWING.
-DISLOC DON'T DISPLAY LOCATION TEXT ON AN INSTANCE OF
THIS BODY IF THE OFFSET IS FOLLOWING THE DEFINITION.
EDIT MODE COMMANDS:
DURING EDIT MODE, A STAR INDICATES THE CLOSEST POINT IN THE
BODY LINES FOR USE WITH αR, αM, βI, αD COMMANDS.
α" ASKS FOR A MACRO NAME, THEN DEFINES THAT MACRO TO BE
THE NAME OF THE BODY YOU ARE EDITING.
ε" SAME AS α" BUT MAKES MACRO OUT OF DIP TYPE NAME
INSTEAD OF BODY NAME.
αM
βI ENTER INSERT MODE. THE CURRENT POINT IS SET TO
THE POINT WHICH PREVIOUSLY HAD A STAR ON IT.
αG "GET" A BODY DEF BY NAME AND ADD IT TO THE END OF THIS BODY.
YOU WILL BE ABLE TO MOVE IT(NORMAL CURSOR MOVING) AND
ROTATE IT (USING αO) UNTIL YOU TYPE SPACE. ALTMODE WILL
FLUSH THE BODY WITHOUT PLACING IT.
αD DELETE "CLOSEST" POINT.
αR CHANGE FLAVOR OF CLOSEST POINT. WAITS FOR + OR -.
βN MOVES THE CURSOR TO THE CURRENT INITIAL LOCATION OFFSET AND
THEN LETS YOU MOVE IT UNTIL YOU TYPE SPACE OR ALTMODE.
INSERT MODE COMMANDS:
THE CURRENT POINT ON THE BODY LINES FOLLOWS THE CURSOR UNTIL
YOU LEAVE INSERT MODE.
λ+ THIS TERMINATES THE CURRENT VECTOR FOLLOWING
THE CURSOR. AND STARTS A VISIBLE ONE FOLLOWING IT.
λ- SAME AS + BUT AN INVISIBLE VECTOR IS STARTED. (FEAR NOT
YOU CANNOT WASTE SPACE BY PUTTING TWO INVISIBLE VECTORS
TOGETHER.)
αR WAITS FOR A "+" OR A "-" THEN CHANGES THE VECTOR "LEAVING"
THE CURRENT POINT TO THE CORRESPONDING TYPE.
αD DELETE THE CURRENT POINT. THIS WILL LEAVE A VECTOR JOINING
THE TWO NEIGHBORING POINTS THE TYPE WILL BE THAT OF THE
ONE ALREADY ON THE LAST POINT. HOWEVER THE CURSOR IS ON
THE NEXT POINT.
SPACE MOVE THE CURSOR TO THE "NEXT" POINT.
BACKSPACE MOVE THE CURSOR TO THE "PREVIOUS" POINT.
TEXT/PROPERTY MODE COMMANDS:
A STAR INDICATES THE CLOSEST TEXT/PROPERTY.
AN INVISIBLE PROPERTY CANNOT BE CLOSE TO THE CURSOR
UNLESS "XIDENTS" HAS BEEN DONE (MAKING IT VISIBLE).
αT PLACE BODY TEXT AT THE CURRENT CURSOR POSITION.
THE SIZE KLUDGE IN DRAWING MODE APPLIES HERE.
WHEN TEXT IS PLACED, THE OFFSET IS CALCULATED TO CENTER
THE TEXT OVER THE CURSOR POSITION. THIS OFFSET IS
MAINTAINED WHENEVER THE TEXT IS CHANGED, UNLESS YOU
EXPLICITLY MOVE IT YOURSELF.
αY ASKS FOR PROPERTY NAME, THEN ASKS FOR TEXT TO ASSOCIATE
WITH PROPERTY. IF PROPERTY DOES NOT EXIST, TEXT IS PLACED
AS IN αT, BUT MAY BE REFERED TO BY ITS PROPERTY NAME.
IF PROPERTY EXISTS, ITS TEXT IS REPLACED BY THE TEXT
YOU TYPED. IF EITHER THE PROPERTY NAME OR THE TEXT IS
ENDED WITH ALTMODE (ε$) NOTHING IS DONE.
βY ASKS FOR PROPERTY NAME, YOU DO NOT HAVE TO TYPE THE
FULL NAME OF THE PROPERTY, ONLY ENOUGH TO UNIQUELY
IDENTIFY IT. IF THE PROPERTY IS FOUND, THE FULL PROPERTY
NAME IS TYPED OUT. THEN YOU ARE ASKED FOR THE NEW TEXT
TO ASSOCIATE WITH IT. AGAIN ALTMODE (ε$) GETS YOU OUT.
αK STOP DISPLAYING TEXT/PROPERTY. IF TEXT, THIS DELETES IT.
IF IT IS A PROPERTY, IT IS NO LONGER DISPLAYED, BUT THE
BODY DEF STILL HAS THAT PROPERTY. PROPERTIES WHICH ARE
NOT BEING DISPLAYED WILL BECOME VISIBLE UNDER "XIDENTS".
αD DELETE TEXT OR PROPERTY COMPLETELY.
βD IF PROPERTY, CHANGE TO ORDINARY TEXT. IF INVISIBLE,
THEN CHARACTER SIZE IS SET TO THE STANDARD.
αM MOVE THE TEXT/PROPERTY. THE TEXT FOLLOWS THE CURSOR
UNTIL YOU TYPE A SPACE.
βM CHANGE TEXT OFFSET FROM TEXT LOC.
AFTER THIS COMMAND, OFFSET IS NOT AUTOMATICALLY
RECALCULATED WHEN TEXT IS CHANGED.
εM GRAB TEXT TO CURSOR. LIKE αM, BUT TEXT MOVES TO CURSOR
INITIALLY.
STANFO αZ LINE EDIT TEXT. LINE EDITOR CURSOR STARTS AT
BEGGINNING OF LINE.
STANFO αQ LINE EDIT TEXT. LINE EDITOR CURSOR STARTS AT
END OF LINE.
εZ RECALCULATE OFFSET FOR TEXT TO CENTER IT OVER
MOVE POINT. TEXT CHANGES WILL AGAIN UPDATE OFFSET.
α" STORE TEXT INTO MACRO.
β" STORE PROPERTY NAME INTO MACRO.
αF FIND NEXT MARKED TEXT STRING.
βF ASKS FOR STRING, THEN FINDS AND MARKS ALL PROPERTIES
WHICH HAVE THE STRING AS A SUBSTRING OF THEIR PROPERTY
NAME.
εF ASKS FOR STRING, THEN FINDS AND MARKS ALL TEXT WHICH
HAS THAT STRING AS A SUBSTRING.
EXTENDED COMMANDS FOR EDIT TEXT/PROPERTY MODE:
TMOVE MOVE TEXT/PROPERTY OFFSET USING CURSOR
MOVE COMMANDS. THIS STOPS AUTOMATIC
RECALCULATION OF TEXT OFFSET.
PIN MODE COMMANDS:
A STAR INDICATES THE CLOSEST PIN.
αD DELETE CLOSEST PIN
αM MOVE THE CLOSEST PIN. CURSOR IS PLACED ON PIN
AND PIN FOLLOWS IT UNTIL SPACE IS TYPED.
αN ASKS "NEW PIN NAME?", THEN CHANGES THE NUMBER OF THE CLOSEST
PIN TO WHAT EVER YOU TYPE. SAME RESTRICTIONS ON NUMBER
AS WHEN PLACING NEW PIN.
βN ASKS "LOCATION # (0-7)?" IF YOU TYPE "?"<CR> YOU WILL GET
A LIST OF THE OPTIONS. THIS NUMBER CONTROLS WHERE THE PIN
NUMBERS ARE SHOWN.
PIN DISPLACEMENTS ARE ACCORDING TO THIS CHART.
0=UP RIGHT 4=DOWN LEFT
1=UP 5=DOWN
2=UP LEFT 6=DOWN RIGHT
3=LEFT 7=RIGHT
εN USED TO BE "NIPPLE BIT". NOW IT IS MORE GENERAL.
YOU MAY NOW TYPE X,Y (OR JUST X) OFFSET FOR PIN NUMBER.
THE UNIT IS 1 CURSOR STEP. THE VALUES MAY BE SIGNED.
αF AUTOMATICALLY CALCULATES LOCATION #. IF IN OUTSIDE MODE
THEN WILL TRY TO PUT IT OUTSIDE, ELSE INSIDE. INSIDE IS
STARTUP DEFAULT.
εF DO αF TO ALL PINS OF BODY.
DEC βP ASKS "POLARITY?" TYPE H OR L TO SET THE DEFAULT ON THE
NEAREST PIN. TYPE <CR> TO CLEAR THE DEFAULT.
TYPE ε$ TO ESCAPE WITH NO CHANGE.
EXTENDED COMMANDS FOR EDIT PIN MODE:
FLPIN ASKS FOR STRING, AND MARKS ALL PINS WHOSE
PIN NAME CONTAIN THE STRING AS A SUBSTRING.
FLPNEXT FIND NEXT MARKED PIN.
MACRO'S:
α: EQUIVALENT TO ;R0<cr>
λ;<-><n><l> MACRO COMMAND. <-><n> IS ARGUMENT, <l> IS COMMAND.
<-> IS OPTIONAL. IF NOT AT COMMAND LEVEL (STAR PROMPT),
YOU MUST USE AT LEAST 1 <ALT> BEFORE THE ";".
MACRO COMMANDS:
S STOP ALL MACROS IMMEDIATELY. THIS IS WHAT TO DO WHEN
YOU ARE INSIDE A MACRO AND YOU DECIDE YOU HAVE SCREWED
UP.
H SUBSTITUTE THE VALUE OF A VARIABLE AT THIS POINT.
ASKS FOR THE VARIABLE NAME. TERMINATE THE NAME WITH
A CARRIAGE RETURN.
I INPUT FROM THE TTY. THE NEXT CARRIAGE RETURN TYPED
SIMULATES TYPING ";R0".
Y ASKS FOR A CHARACTER, READS INPUT FROM
DSKIN FILE UNTIL THIS CHARACTER IS SEEN. THEN TURNS
OFF DSKIN AND PROCEEDS TO TAKE INPUT FOLLOWING THE ;Y.
P START TEMPORARY MACRO.
M START PERMANENT MACRO. EVERYTHING FROM HERE TO THE NEXT
<CR> WILL BE TAKEN TO BE THE MACRO NAME. ARGUMENT OF 1 BEFORE
M WILL CAUSE "SMACRO" TO HAPPEN TO THIS MACRO.
D LIKE M, EXCEPT DOESN'T EXECUTE MACRO DURING DEFINITION.
IF REPEAT COUNT IS GREATER THAN 1, THE REST OF THE
ITERATIONS WILL BE IGNORED ALSO. ARGUMENT OF 1
WILL CAUSE "SMACRO".
R END MACRO. EVERYTHING FROM HERE TO THE NEXT <CR> WILL BE
TAKEN TO BE THE REPEAT FACTOR(INCLUDING DEFINITION OF
MACRO). FOR PERMANENT MACRO'S THE REPEAT FACTOR BECOMES
PART OF THE DEFINITION. AS A SPECIAL HACK IF THE CHARACTER
"#" IS USED INSTEAD OF A NUMBER, THE NUMBER OF MATCHES
FOUND BY THE LAST "F" OR "XFDIP", ETC. COMMAND WILL BE USED.
C CALL MACRO BY NAME. EVERYTHING FROM HERE TO NEXT <CR> WILL
BE TAKEN AS THE MACRO NAME.
A FOLLOWED BY:
N,M,I
SUBSTITUTE AT THIS POINT THE NUMBER N AND INCREMENT BY M
EVERY TIME THROUGH THE MACRO I LEVELS UP FROM THE CURRENT
ONE. N AND M MAY BE NEGATIVE. I, OR M AND I MAY BE LEFT
OUT, IF SO DEFAULT I WILL BE 0 DEFAULT M WILL BE 1.
IF A <-><N> ARG PRECEDED THE "A", IT WILL BE USED
AS THE MINIMUM WIDTH OF THE RESULTANT DIGIT STRING.
<-> IS CURRENTLY IGNORED.
N SAME AS ";A" EXCEPT ALWAYS SIGNS THE NUMBER, EXCEPT FOR
ZERO WHICH EXPANDS INTO A NULL STRING!
L FOLLOWED BY:
<NUMBER><CR>
ADDS 100 (OCTAL) TO NUMBER AND RETURNS IT AS A LETTER.
IF "D" PRECEEDS THE NUMBER, G,I,O, AND Q ARE SKIPPED.
THE "D" STANDS FOR "DEC"
T WILL REQUEST TTY INPUT AT THIS POINT.
MUST BE TERMINATED BY ";R0".
U LIKE ;T IF INPUT NOT COMING FROM MACRO, OTHERWISE
IT IS A NOOP. THIS IS USEFUL WHEN YOU GET INTO
A MACRO AND DISCOVER YOU WANTED TO INITIALZE A VARIABLE
OR SOMETHING. IT ALLOWS YOU TO DO SOMETHING WHILE YOU
ARE TYPING IN THE MACRO WHICH WILL NOT BE DONE ON
SUBSEQUENT ITERATIONS.
V<n>,<macro name><cr>
THIS CAUSES TTY INPUT TO BE EXECUTED AND STORED IN THE
MACRO WHOSE NAME YOU TYPE, IF THE NEXT TIME THIS COMMAND
IS PROCESSED, ANY OF THE MACROS BETWEEN THE CURRENT LEVEL
AND THE LEVEL n UP FROM HERE (INCLUSIVE) ARE NOT IN THE
FIRST TIME THROUGH THE LOOP, A ";C" IS DONE WITH THE MACRO
NAME INSTEAD OF TAKING IN THE DEFINITION.
ANOTHER WAY OF LOOKING AT THIS IS THE CONSIDER THE MACRO
A VARIABLE ASSIGNED THE FIRST TIME YOU ENTER MACRO LEVEL
n UP FROM HERE.
F<n><flag><cr>
<flag>::= <flagname> | -<flagname>
<n>::= <macro level>
IF <flag> IS TRUE, ALL CHARACTERS ARE EATEN UNTIL A MACRO
LEVEL <n> LEVELS UP FROM THE CURRENT ONE IS LEFT.
THE FOLLOWING FLAGNAMES EXIST:
FALSE ALWAYS FALSE (USE -FALSE FOR TRUE)
CLOSES TRUE IF CLOSE TO SOMETHING
FIND TRUE IF LAST "αF" FOUND SOMETHING
AFIND TRUE IF LAST F, S, K, N, U, OR # COMMAND IN
ALTER MODE WAS SUCCESSFUL.
ENDMUL TRUE IF LAST αH INCREMENTED A MULTI STRING
VARIABLE OFF THE END (VALUE OF STRING IS NOW NULL).
DSKEND TRUE IF NO DSKIN FILE OPEN. TO FACILLITATE THE
USE OF THIS FLAG, END OF FILE WILL LOOK LIKE A MATCH
FOR THE CARACTER IN ;Y. THIS IS SO CONTROL WILL
REVERT TO A MACRO ON END OF FILE.
LSTEXP TRUE IF LAST ;X RETURNED A NON-ZERO RESULT
AEOL TRUE IF AT END OF LINE IN ALTER MODE
ABOL TRUE IF AT BEGINNING OF LINE
EDGE TRUE IF LAST CURSOR MOVE HIT SCREEN EDGE
(NOT TRUE IF IN -WINDOW MODE)
E<macro name><cr>
EVERYTHING UP TO THE NEXT ε: IS STORED
IN THE NAMED MACRO AFTER EVALUATION BY MACRO PROCESSOR.
X<expression><cr>
THIS ALLOWS ARITHMETIC EXPRESSIONS TO BE EVALUATED. THE
OPERATORS "+", "-", "/", "*" ARE RECOGNIZED, SUB-EXPRESSIONS
MAY BE FORMED USING MATCHING PAIRS OF "< >" OR "( )".
STANDARD PRECEDENCE IS USED IN EVALUATION.
=<any char.>
RETURNS A STRING OF DIGITS REPRESENTING THE DECIMAL CODE
OF THE CHARACTER MINUS 64.
#<any char.>
IF CHAR IS NOT A LETTER, DOES ;=.
ELSE CONVERTS LETTER TO NUMBER USING SEQUENTIAL NUMBERS
FOR THE DEC ALPHABET.
G<string><cr>
CONVERTS ALL LETTERS IN <STRING> TO LOWER CASE.
↑<ANY CHAR.>
RETURNS CHARACTER WHOSE ASCII CODE IS 100 LESS THAN
THAT OF THE CHARACTER TYPED. LOWER CASE IS CONVERTED
TO UPPER CASE BEFORE PROCESSING. THIS COMMAND ALLOWS
TYPIN OF CONTROL CHARACTERS BY USING THEIR LETTER.
FOR INSTANCE <CONTROL>C CAN BE GOTTEN BY ;↑C.
O<string><cr>
IF NOT TAKING INPUT FROM TTY, PRINTS STRING ON TTY
MACRO'S MAY BE NESTED TO A LEVEL OF 102 DECIMAL THE ONLY REQUIREMENT
BEING THAT EACH MACRO CONTAIN AN EQUAL NUMBER OF ;P'S AND ;R'S.
RUNNING WL
How to run the wire lister
or
Easy little steps for muddy little feet
Commands are single letters with or without control or meta. The command
may be preceeded by any of the following:
DEC NODEC
(NOTHING) (nothing)
$ ONE ALT control
β TWO ALTS Meta
ε THREE ALTS control-meta
λ doesn't matter
If more than one of the above appear, then all will satisfy command.
In all but the "I" command, if only one wire list exists, the "WIRE
LIST ID?" prompt will be skipped.
Commands:
λE EXIT.
λ@ SAME AS "XDSKIN".
εD Enter DIP SUB-MODE. See next page for commands in DIP SUB-MODE.
←<wire list id>
Set default wire list id. This is the wire list which is used
for all commands requiring single wire lists. The 2 wire list
id's are "D" and "PC".
α← Toggle wire list id's. (switch from D to PC or back).
αI OR βI
ASKS:
FILENAME?
You may type a filename (default extension is α='WD' and β='WPC')
or @filename (default extension is "DIR"). The format of
a "DIR" file will be explained later.
If you type "α" you get wire list with id "D". If you type "β"
you get the wire list with id "PC".
The file(s) are read, signal names are compared and the
wire list is built.
After the file name you may type a module location which takes
effect for any dips or pins which do not already specify a
module location. You may also type variable settings enclosed
in parentheses, separated by commas. See the end of this writeup
for exact information. Example:
αIFOO 1AE3 (N0,M0) 1AE4 (N6,M1)
This reads file FOO.WD twice, once (called slice 1) for
module location 1AE3 with N=0 and M=0, and once for location
1AE4 with N=6 and M=1.
The file(s) are read, signal names are compared and the
wire list is built.
εI Asks:
FILENAME?
Same options as reading 'WD' or 'WPC' files, default extension is 'WEQ'.
This file contains some number of signal names on each line, seperated
by tabs. The effect of this file is that each line is treated as a wire.
So you may cause certain wires to be grounded or connected to HI, or even
connected to other wires. Please note: The card location of the wire list
you wish to affect should appear with the filename, just like reading a
wire list.
εU Asks:
CARD(NLLN)? if necessary
This copies the dips from the default wire list (a logic
wire list), to the other wire list (a pc wire list). The
locations are used for matching.
αN OR βN
Asks:
WIRE LIST TITLE?
The string you type will be used on listings involving
this wire list.
αL Asks:
CARD (NLLN)? if necessary
This lists a wire list onto a file. The default
extension is 'WL'.
All sorts of neat things are indicated on
the wire list, the best way to find out what
they are is to make one.
Any unnamed signals are given unique numbers
which are printed preceeded by a "#".
βL Asks:
CARD (LN)? if necessary
This makes the following summaries:
Summarizes all dip types used in this wire list
totaling the different body names and total number
of sections used.
UNGENERATED SIGNALS
UNUSED SIGNALS
Each of these catagories is listed, only one
of the names of a wire fitting the catagory
is listed. The default extension is 'WLS'.
εL Asks:
CARD (NLLN)? if necessary
Then asks for a filename. The default extension is 'WLU'.
Writes a listing file which is sorted by dip number. Under each
dip number is listed the signals connected to each pin.
At the end of the listing, the edge connector fingers are listed
in alphabtical order along with the signal connected to each.
This prints out the following info:
LOC DIPTYPE BODY POS FILE
For each body followed by:
PIN # TYPE HI LOW USE SIGNAL NAME
For each pin of body.
Then:
CONNECTORS
PIN FILE SIGNAL NAME
For all connector pins.
This allows you to find out a signal name from the LOC(PIN #).
P<signalname>
or
αP which asks for signal name
Then prints for that the signal name, the information which
would be printed for that signal in αL. Prints on TTY.
βP Asks:
CARD (LN)? if necessary
Then asks:
DIP OR CONNECTOR LOCATION?
Then prints info for that loc which you would have gotten in
a εL listing. Prints on TTY.
εP Asks:
SIGNAL NAME?
Then does αP for this signal for each card currently read in.
In addition, if <FORALL> (NODEC) OR ? (DEC) appears in front of the signal name both the
hi and low versions of the signal will be printed. This works
for P, αP, and εP.
αW Asks:
CARD (LN)? if necessary
This writes a file for input to the PC prog for generating
router files which are read by wagner's router prog.
The default extension is "WDR".
βW This writes a back panel wirelist file from all the cards in
the default wirelist. The default extension is 'BAC'.
αB Reads a back panel wire list written with βW (default extension
is 'BAC'). You may now make back panel listings using λX commands.
βB READS A 'BAC' FILE, BUT ONLY INPUTS FILENAME AND TITLE INFO,
AND DIP COUNTS FOR MAKING AN 'MPL' FILE.
εB Reads a file of the same format as a 'WEQ' file, however default
extension is 'BEQ'. It has the same effect on the back panel as
a 'WEQ' file has on a card wire list. Except there is no problem
with the card location, it applies to the whole back panel.
αC Asks:
CARD (LN)? if necessary
Then asks for a filename. The default extension is 'WLC'.
The card specified is found in D wire list and PC wire list.
The two wire lists are compared and an error listing is
produced. Make one to find out the format. The info from βC
is included in αC.
βC Asks:
CARD (LN)? if necessary
This compares D and PC wire list as in αC, but it only checks
if you have placed the right dip sockets on the pc card for
the dips you are using in the logic drawing. Also checks that
you have not pre-assigned an illegal connector pin #. This
be done only after a βL verify has been done with no errors
because the kinds of errors found by this check will confuse
βC.
EXTEND MODE COMMANDS
λX If any control bits held down asks:
Si?
Now type a 1 to 6 (or more) letter command possibly preceded by
a "-". The meanings of these commands are explained below:
A "D" at the left means available in dip sub-mode only, a "B"
means available in both top-mode and dip sub-mode, nothing means
available only in top mode.
B RESIDENT Reads in the dip defintion file at the bottom of free
core, and marks the last loc used.
now whenever you type ↑c start, the dips
stay in the core image. All other data in program
free storage is cleared.
B -RESIDENT Release dips from bottom of core. Now when
you type ↑c start the dips go away.
B DDT Enters DDT if loaded.
B SAVE Asks for a filename, (default extension is 'DMP')
then executes a swap uuo to save the current core
image. If DSKIN is in progress, it is suspended
during the save and restarted (using DSKCON) after-
wards. However, when the saved core image is run
again, the DSKIN is not continued. It may be
continued manually by a DSKCON command.
DEC AT DEC NO SWAP UUO IS USED, THE PROGRAM MERELY
EXITS TO THE MONITOR AND YOU MAY SAVE IT, THEN
START OR RUN IT LATER.
B DSKIN Asks for a filename, (default extension is 'TXT')
then takes input from there instead of tty. If an
error is encountered, input reverts to the tty.
B DSKHLD Releases disk input file, remembering where it was.
later you can give a DSKCON command to continue.
B DSKCON If the last dskin was held by a DSKHLD command or
an error, the command causes the file to be reopened
and the appropriate chars skipped to get it back where
it was. DSKHLD and DSKCON are used by SAVE to get
around the fact that the swap uuo does a reset.
B DSKSKP If no file open, asks for name and opens it.
Reads to the next line feed echoing
characters as it goes. Then asks "STOP?".
If you respond with "y<cr>", then skipping stops and
control reverts to who ever had it last.
If you respond with altmode then
skipping stops and control reverts to tty.
Anything else causes then next line to be
printed, skipped, and the prompt repeated.
DEFPPN Accepts a p,pn to use when none is specified (input only).
-DEFPPN Resets defppn to 0. this is the default.
the effect of 0 is that it is used for the p,pn
on input unless you are reading filenames from
and indirect file. in that case, the p,pn used are
those of the indirect file.
B CLEAR This command is equivalent to "↑C START<cr>" except
that it doesn't flush DSKIN.
STATUS Prints out current program status, like SPACES, REFERENCES,
PAGE, EXTENT, and default wire ID.
SPACES Makes spaces in signal names significant.
Affects the αI and βI commands only.
-SPACES Spaces in signal names are no longer significant
except when they seperate 2 digits.
This is the default.
REFERENCE This enables the feature in 'WL' files which
causes all signal names for a wire to appear
in each alphabetical sorting of each name,
but only one of them will have the pin
information printed. All the others will print
"←←←←← REFERENCE" next to the signal with which
the pins appear.
-REFERENCE Disable references in 'WL' file. Signal names
appear only once, with the pins.
IERROR Enable output of errors on wirelist file input
to go to a file. When you do αI, βI, εI, and εB
you are asked for a filename (default extension
is 'WIE'). This file contains the filename of the
file being processed and any errors which cannot
be indicated later. If you respond with <cr> to
the WIE filename prompt, output will go to TTY
as if no IERROR command had been done.
-IERROR Disable input errors going to file, they will
go to the TTY instead. This is the default.
PART Write a "PARTITION" file, default extension is
'PAR'. This is the file for input to Wagner's
partitioning program.
SIGSUM Write signal summary listing for entire wire list.
Default extension is 'WSS'. These files may be
merged by the program "M.DMP[WL,RPH]" to form a
master signal summary ('MSS').
ERRSUM This writes a file (default extension is 'LES')
which has each run of some of the categories from
the wire list summary output. The difference is
that this is a binary file which goes back into
D and allows you to flash the runs from each
error category.
CONSUM Write connector pins needed summary. This lists
signals in same format as SIGSUM but only those
which need to get from one card to another, but
don't. Default extension is 'WCS'.
WLSSEL LIKE βL, EXCEPT THAT YOU ARE ASKED ABOUT EACH
CATEGORY BEFORE IT IS WRITTEN INTO THE FILE.
BSSEL LIKE BSUM, EXCEPT ASKS ABOUT EACH CATEGORY.
MAKALL ASKS FOR ONE NAME AND POSSIBLE A CARD NAME, THEN
DOES αL, βL, εL (WRITES 3 FILES).
BMAKALL LIKE MAKALL, BUT DOES BLIST, AND BSUM.
UMAKE WRITES 'UML' FILE FOR INPUT TO "D" PROGRAM WHICH
REPLACES ALL EDGE PINS WITH GENERATED "U" PINS.
STUFF WRITES 'STF' FILE WHICH TELLS FOR EACH DIP TYPE ON
A BOARD WHERE IT IS USED (WHAT LOCATION).
LPART WRITES 'PRT' FILE WHICH TELLS FOR EACH DIP TYPE ON
A BOARD WHAT ITS PART NUMBER IS AND HOW MANY ARE USED.
UML Prints a module map for the card you select. Also
prints edge signals in boxes for each paddle.
Default extension is 'UML'
TEST Asks:
CARD (LN)? if necessary
This writes a card tester file for P. Petit's simulator.
The default extension is "TST".
ROUTE Asks:
CARD (LN) ? if necessary
This routes all runs on the specified card and then
produces a listing (default extension 'WLR'). The
listing is like a 'WL' listing except that the pins
are ordered and a pseudo Z-level is indicated in an
extra column.
ZLEVEL Asks:
CARD (LN) ? if necessary
This routes all runs on the specified card and then
produces a listing (default extension 'WLZ'). The
listing is 4 from-to listings. First is PWR and GND
Z-level 1 and Z-level 2. Then signals, Z-level 1
and Z-level 2.
BLIST Write back panel wirelist, default extension is 'BL'.
BSUM Write back panel wirelist summary, similar to 'WLS'
for normal wirelist. Default extension is 'BS'.
BPRINT Asks for a signal name, and prints the run on the tty.
DI<FORALL> (NODEC) OR ? (DEC) works here as in "P" commands.
SIMPLE Writes back panel information necessary for running the
DEC wirelist package over the back panel.
ASIMPLE WRITES SAME INFO AS SIMPLE COMMAND, BUT ASSIGNS
REAL PIN NAMES IN PLACE OF "U" PIN NAMES.
REDAC Writes a REDAC-compatible wirelist. First,
the REDAC master library is read (filename LIBRY.RDC)
automatically. If the library is not found, you are
asked for the correct filename. Respond with <CR> if none
exists. WL then asks:
CARD (NLLN)? if necessary
Then asks for a filename. The default extension is 'CON'.
If terminators are discovered in the wirelist, you will be
asked whether or not you want them in the REDAC output.
This writes a pc card interconnection list in the correct
format for input to REDAC.
STRAPS Reads a 'C2C' file which has 2 card locations on each line
seperated by a tab, specifying which cards have their back
strap connectors strapped together. A special format allows
each paddle to be mentioned explicitly so you can strap
different paddles in different directions.
An attempt is made to look at each wire which has a back
connector on it. If it has no name, lose. Otherwise find
the same named wire on the other card. If found then try
to match edge pins on this wire with edge pins on that
wire. A match occurs if they are the same pin, or if one
or both are "wild" specified pins. This allows errors to
be avoided when only one card is placed.
CSTRAP Asks for "CARD nlln" if necessary (should be). Then writes
a file with the default extension 'DAT'. The file contains
the back connector locations which are gotten by taking
a wild back connector from this card and finding the
matching connector on the other card. This allows pre-
placement of pins which have been previously assigned
on one of a pair of cards. The file is suitable for reading
with the "IPINS" command in the drawing prog.
EXTENT and -EXTENT This is the number of paddles to assume make it to the back
panel for card with no location. It is initialized to 4.
-EXTENT This resets the extent to 4 (the default).
PAGE This allows you to set the number of lines per page to assume
when making listings, in case output will not go to LPT.
-PAGE Resets page length to 52 (the default, to allow for spooler or
other headings).
OLD and -OLD Toggles mode for reading "old" format DIPS.DIP files.
ECL and -ECL Toggles default for ECL dips during dip definition.
TTL and -TTL Toggles default for TTL dips during dip definition.
DIP SUB-MODE
λE Exit to TOP MODE (commands on previous page).
λ@ SAME AS "XDSKIN".
λI<filename> Input dip file into internal structure. If filename
is omitted, last one used for I or W command is used.
Name starts as "DIPS.DIP[<LIBRARY PPN>]". Default extension
is always 'DIP'.
λW<filename> Write internal list into file. Filename same as for I.
λN<filename> Change (or just print if no filename arg) the default
dip filename.
λL<cr> Asks:
FILENAME?
Default extension is 'LSD'. This makes a listing of all
dip definitions.
λD<dipname> Delete definition of <dipname>. If <dipname> is blank
you get DDT.
λP<dipname> Print definition of <dipname> on TTY.
λR<dipname> Rename dip with name <dipname>. Asks for new name.
λS<dipname> SET PART NUMBER STRING FOR DIP <DIPNAME>.
λC<dipname> Copy definition of <dipname>.
Asks:
NEW DIP NAME?
If it already exists, you are asked:
ALREADY EXISTS, REPLACE?
Then you are asked:
LOADING CONVERSION FACTOR?
The format is <number> or <number>/<number>. This
is the scale which is applied to all loadings of
the old dip definition to get the new one.
λM<dipname> Modify definition of <dipname>.
If no definition exists for this dip name, it TYPES:
NEW NAME # OF PINS?
Answer with <n><cr>.
If a definition already exists, types out the number
of pins. Then a heading line is typed and echoing is
turned off. It tabs to the PIN # column and waits for
a command. Now you may type:
<n><cr> Types the information for pin <n>.
<n><tab> Types the information for pin <n> then tabs to
the "TYPE" column. You can now change any or all
of the data items for this pin. Type <cr> to
fill in the rest of the line with the old stuff.
Type <tab> to get to the next column. Bad format
is filtered out and only good data is echoed. To
leave a column unchanged, just <tab> to the next
column without typing anything.
<cr> Asks for a new DIPNAME. You can either
edit another dip or get back to DIP SUB-MODE by
typing <cr>.
A<cr> Types pin <n+1> automatically when you type
<cr> for pin <n>. You get out of automatic mode
by typing <ALTMODE> or reaching last pin.
T<cr> L<cr> U<cr> P<cr> S<cr>
Automatically copies all columns to the left
of the TYPE, LOAD, USE, PS, and SECTION columns
respectively when you type the <n><tab>
command above.
In all the above ALTMODE is equivalent to <cr>.
Legal TYPES are:
I input OP pull up output
IS input with load sharing PWR,P,or V power
O output GND or G ground
OT tri-state output NC or N no connection
OC open collector output Z terminator
You may prefix any of the above types with the letter "T" for
TTL or "E" for ECL. You may follow an "I" or "IS" with "P" if
this pin has an internal pullup or pulldown and thus doesn't
require drive. The wirelister will complain if an "I" or "IS"
pin isn't connected to an output. You may follow an output
(O, OC, OT, OP) with "F" if you wish to mark it as a
flip-flop output. If the X commands ECL or TTL have been
performed, the prefix "E" or "T" is assumed automatically.
With no prefix, the pin definition is neutral with respect to
TTL vs ECL. This information lives at TYPTAB in WLDIP.FAI
and in the table following TYPTAB, in case desperation with
the dip editor forces you to seek the ultimate documentation.
The USE column is for comments such as "S1" or "S4" on an ALU dip,
except that if the USE string begins with "CLK" the wire lister will
take note of this fact, but it isn't clear what it will do about it
(TAG, 1/21/75). PS is an arbitrary number which you assign to
identify pins that share load. Give the same number to all pins that
share with each other. SECTION is for defining the sections of the
dip and for specifying equivalent pins in other sections. The section
information is: <logical pin #>/<section #>{,<subsection #>}. The
equivalent pins in different sections are identified by having equal
logical pin numbers. The subsection number is used with the section
number to describe a dip with more than one level of structure, i.e.,
a 10100 ECL dip with four identical sections, and where one pin of
each section is tied to a common enable line. In this case, the four
gates sharing the common enable line are considered to be in section
0, with a seperate subsection number for each gate. Section and
subsection numbers must be sequentially assigned and must be
distinct, i.e., a number used as a section designator must not also
be used to number a section. If you're confused, look at the
definitions of gates like DM8838, 10100, etc.; if still confused ask
Tom Gafford, and if he confuses you, call RPH around 3 a.m. some time
and harass him because it's all his fault.
WL FILE FORMATS
In this part:
() means optional
<> syntactic entity
()* 0 or more of
<l> single letter
<n> 1 or more digits
<cr> Carriage return - linefeed
Argument to αI or βI TOP MODE commands:
<filename> ( .<ext> ) ( [<p>,<pn>] ) ( ( <slicespec> )* ) <cr>
"DIR" files:
( <filename> ( .<ext> ) ( [<p>,<pn>] ) ( ( <slicespec> )* ) <cr> )* <eof>
<slicespec> ::= ( ( <n> ) <l> ( <l> ) <n> ) ( "(" ( <n> <lessthan> )
( <n> <greaterthan> ) <l> <n> ( , <l> <n> )* ")" )*
"(" and ")" stand for a parenthesis pair.
This is a list of files to read for "I" or "U" commands.
The first part of the slicespec allows you to specify the
<bay><toprack><bottomrack><slot>
for any unspecified dip locations. In addition the filespec for the indirect
file may include a <n><l><l><n> construct which will be used on any filespec's
in the file which don't have their own. The rest is for the special construct in
signal names which we will call expressions. The <n><lessthan> sets the lower
bound of values to <n>, the <n><greaterthan> sets the upper bound.
The <l><n> sets variable <l> to <n>. The format of a signal name
which uses an expression is as follows:
<signal name> ::= ( ( <any char except "["> )* ( [ <expr> ] ) )* ( <cr> )*
<expr> ::= <form1> | <form2> | <form3>
<form1> ::= <form3> ( , <string> )*
<form2> ::= ( <form3> "{" <STRING> "}" )* ( <FORM3> )
<form3> ::= <secondary> | <secondary> <op1> <form2>
<secondary> ::= <primary> <op2> <primary> | <primary>
<primary> ::= "(" <expr> ")" | - <primary> | + <primary> | A-Z | <number>
<op1> ::= + | -
<op2> ::= / | *
<number> ::= 0-9 | 0-9 <number>
The "()" pair in the primary definition may be replaced by a "<>" pair,
but you must close with the same thing with which you opened.
If <expr>=<form1> the <form3> expression is evaluated. Then the thing
in [] is replaced by the I'th string (where value of <form3>=I). If
I less than or equal to zero, or I greater than the number of strings,
the thing in brackets is replaced with null.
If <expr>=<form2> the first <form2> expression is evaluated. If the value
is non-zero, the string contain in the following "{}" pair is the result
of the expr. Otherwise, the evaluation of the <form3> expression after
the "}" is done and so on until on becomes true or the "]" is reached.
If <expr>=<form3> the thing in [] is replaced by the decimal value
of the expression with leading zeroes added to make the length of the
result equal to the length of the longest variable <l> in the expression.
The following is the format of a "STRAP" file, it tells which
paddles of which cards are strapped together:
{<strap spec>}* <eof>
<strap spec> ::= <card spec><tab><card spec><crlf>
| <paddle spec><tab><paddle spec><crlf>
<card spec> ::= {<bay>}<rack><slot>
<paddle spec> ::= <card spec><paddle letter>
<bay> ::= 0-15
<rack> ::= <top rack>{<bottom rack>}
<top rack> ::= A-Z
<bottom rack> ::= A-Z
<slot> ::= 1-63
<paddle letter> ::= A-Z
SEMANTICS:
The <card spec> construct is used if the back strap connectors
of both cards correspond on a one-to-one basis. The <paddle spec> is
used when different height cards are being described or strapping is
going to either side of a single card on different paddles.
HOW TO RUN REF
REF IS A PROGRAM TO GOBBLE DOWN 'WD' FILES
AND PRODUCE A LISTING, ORDERED BY SIGNAL NAME
SHOWING EACH FILE IT IS USED IN AND HOW MANY
TIMES IT IS USED.
THE PROG STARTS BY ASKING:
WD FILENAME?
TO WHICH YOU MAY TYPE EITHER
FILNAM.EXT[P,PN] DEFAULT EXT IS 'WD'
OR
@FILNAM.EXT[P,PN] DEFAULT EXT IS 'DIR'
IF THE "@" CONSTRUCT IS USED, ANOTHER FILENAME IS SCANNED
FROM THE FILE, AND SO ON UNTIL END OF FILE (BLANK LINES ARE
IGNORED).
FILENAMES ARE GOBBLED AND THE FILES READ UNTIL YOU TYPE
A BLANK FILENAME FROM THE TTY.
IT THEN ASKS:
REF FILENAME?
YOU NOW MAY TYPE THE OUTPUT FILENAME (DEFAULT EXT IS 'REF').
IF BLANK NAME IS TYPED, OUTPUT GOES TO THE TTY.
MISCELANEOUS
DRAWING PITFALLS:
1. LINES WHICH APPEAR TO TOUCH MAY NOT INTERSECT IN THE DATA
STRUCTURE. TO INSURE CONTINUITY YOU MUST EITHER:
A. USE THE "-" METHOD TO HAVE A LINE YOU ARE DRAWING
INTERSECT A POINT YOU CAN SEE.
B. USE THE "αA" OR "βA" METHOD TO ATTACH TO A POINT OR
LINE RESP.
(IN CASE OF DIFFICULTY, LEARN THE "αB" AND "βB" FUNCTIONS.)
2. LABELS (LOGICAL NAMES) MAY APPEAR NEAR A WIRE AND NOT BE
ASSOCIATED WITH IT. TO FORCE ASSOCIATION, YOU MUST:
A. GET ON THE POINT AT THE END OF THE WIRE AND PLACE THE
TEXT THERE. MOVE THE WIRE IF THE TEXT GETS GARBAGED BY
SOME NEARBY OBJECT.
3. USE "XDANGLE" TO FIND MOST ERRORS OF FORM 1 AND 2.
(YOU MIGHT USE THE "αA" FUNCTION TO ATTACH SOME TEXT TO THE NEAREST POINT)
PC CARD LAYOUT RESTRICTIONS (BY MCGUIRE):
THE FOLLOWING LAYOUT TECHINQUES ARE TO BE CONSIDERED
MANDITORY UNTIL PROVEN OTHERWISE:
THE STANDARD STEP SIZE (50 MILS) WILL BE USED IN ALL PC CARDS
EXCEPT FOR SPECIAL PURPOSE ONES. THIS ALLOWS EXACTLY ONE WIRE TO PASS
DIRECTLY BETWEEN TWO PADS.
WIRES BETWEEN PADS SHOULD BE WITHIN 15 DEGREES OF STRAIGHT
THROUGH TO ALLOW 18 MILS OF CLEARANCE BETWEEN WIRE AND PAD, 30
DEGREES GIVES 15 MILS OF CLEARANCE, STRAIGHT THROUGH GIVES 20 MILS OF
CLEARANCE.
WIRES BETWEEN PADS ARE ALLOWED ONLY ON THE TOP (DIP INSERTION)
SIDE OF PC CARDS OWING TO TROUBLE WITH SOLDER BRIDGING ON THE BOTTOM.
SPACING BETWEEN WIRES MAY BE THE MINIMUM, THAT IS 50 MILS.
CONSIDER PADS AND FEED THROUGH TO BE 52 MILS IN DIAMETER AND WIRES TO
BE 10 MILS WIDE (AFTER ETCHING).
IF A FEED THROUGH IS TO BE PLACED BETWEEN TWO WIRES THE WIRES
MUST BE AT LEAST 100 MILS APART IN ORDER THAT THE 20 MILS CLEARANCE
BE MAINTAINED AROUND THE FEED THROUGH.
PLANE DESIGNATIONS:
IN ORDER TO AVOID CONFUSION THE FOLLOWING PLANE DESIGNATIONS
WILL BE USED IN ALL PC CARDS:
PLANE USE
0 GROUND PLANE.
1 FIRST POWER PLANE(USE THIS IF ONLY ONE)
2 SECOND POWER PLANE(USE THIS AND 1 IF TWO POWER PLANES)
3 THIRD POWER PLANE.
IF SOMEBODY NEEDS MORE THAN 4 PLANES, HE IS CRAZY AND SHOULD SEE
RPH FOR TREATEMENT.
EXTERIOR PLANES!!!!!!!!
THE SIDE OF THE BOARD INTO WHICH DIPS ARE INSERTED WILL BE
REFERED TO AS THE TOP. THE OTHER SIDE WILL BE REFERED TO AS THE OTHER
SIDE.